import axios from 'axios';

class ServerStatus {
  constructor() {
    this.serverData = null;
  }

  // 获取服务器状态数据
  async fetchServerStatus(address) {
    try {
      const response = await axios.get(`http://api.mcsrvstat.us/2/${address}`);
      if (response.data) {
        this.serverData = response.data;
        return this.extractData();
      }
    } catch (error) {
      console.error('Error fetching server status:', error);
      return null;
    }
  }

  // 提取服务器数据
  extractData() {
    if (this.serverData && this.serverData.players) {
      const { ip, motd, players, version, online } = this.serverData;
      return {
        ip,
        motd: motd.clean ? motd.clean.join(' ') : '暂无名称',
        players: `${players.online || 0}/${players.max || 0}`,
        version,
        online,
      };
    }
    return null;  // 如果无法获取数据，返回 null
  }

  // 获取并格式化服务器信息
  async getServerInfo(address) {
    const status = await this.fetchServerStatus(address);
    if (status) {
      return `服务器 IP: ${address}\n` +
             `在线玩家: ${status.players}\n` +  
             `游戏版本: ${status.version}\n` +   
             `服务器介绍: ${status.motd}\n` +
             `服务器状态: ${status.online ? '在线' : '离线'}`;
    }
    return '无法获取服务器信息';
  }
}

// 使用 export default 导出 ServerStatus 类
export default ServerStatus;
